#ifndef RADIOPLAYLISTMODEL_H
#define RADIOPLAYLISTMODEL_H

#include <QObject>
#include "playlistbasemodel.h"
#include "EZTallyAutoPtr.h"
//#include "BLL/radioBLl/radiobll.h"

class RadioBll;
class RadioModel;

class RadioPlayListModel :  public PlayListBaseModel
{
private:
    Q_OBJECT
protected:
    virtual ~RadioPlayListModel();
public:
    RadioPlayListModel();

    void checkAndGetSongs(int index=-1);

    void setCurIndex(int value);

    virtual SongModel* nextSong(int *outIndex);
    virtual SongModel* previoursSong(int *outIndex);
    virtual SongModel* curSong();
    virtual int wantGetMoreSong();

    virtual void onGetSongsFinish(RadioBll*bll,EZTally::EZTallyArray<SongModel*> *songs,int error);
public:
    RadioModel *radio() const;
    void setRadio(RadioModel *radio);

private:
    void setPlayQueueType(const QUEUE_TYPE &value);

    RadioBll *_bll;
    RadioModel *_radio;


public slots:
    void onGetSongFinish_SLOT(EZTally::EZTallyAutoPtr,int);
};

#endif // RADIOPLAYLISTMODEL_H
